package xml;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class DomWriterDemo {
	public static void main(String[] args) throws ParserConfigurationException, TransformerException {
		/**
		 * 使用DOM解析器实现Writer操作
		 */
		//1、定义工厂对象
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		//2、获取解析器对象
		DocumentBuilder db=dbf.newDocumentBuilder();
		//3、获取文档对象
		Document doc=db.newDocument();
		
		//设置文档的版本类型
		doc.setXmlVersion("1.0");
		
		//4、创建根节点
		Element root=doc.createElement("牛耳教育");
		//5、设置属性
		root.setAttribute("地址", "河西麓谷");
		
		//6、设置子节点
		Element el1=doc.createElement("信息学院");
		//7、设置节点内容
		el1.setTextContent("大家都是毛大学员");
		
		//节点关联
		root.appendChild(el1);
		doc.appendChild(root);
		
		//通过DOM解析器所提供的事务控制器完成XML文件的创建
		//获得事务控制器工厂对象
		TransformerFactory tff=TransformerFactory.newInstance();
		//获得事务控制器对象
		Transformer tf=tff.newTransformer();
		
		//设置当前文件编码格式
		tf.setOutputProperty("encoding", "utf-8");
		
		//定义一个资源对象
		DOMSource dos=new DOMSource(doc);
		//定义一个目标对象
		StreamResult sr=new StreamResult("newer.xml");
		
		//执行文件创建
		tf.transform(dos,sr);
		
		
		
		
		
		
		
		
	}
}
